package com.xzmzhp.service.maintain.impl;

import com.xzmzhp.dao.maintain.LendMapper;
import com.xzmzhp.pojo.maintain.Lend;
import com.xzmzhp.service.maintain.LendService;
import com.xzmzhp.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * @author: 王源(xm)
 * @create: 2022-04-24 18:09
 * @program: ams
 * @description: 借出记录逻辑实现类
 */
@Service
public class LendServiceImpl implements LendService {

    @Autowired
    private LendMapper lendMapper;

    /**
     * 查询借出记录信息
     * @param lendId 借出记录Id
     * @return 借出记录信息
     */
    @Override
    public Lend findLend(Integer lendId) {
        if (StringUtils.isNotNull(lendId)){
            return lendMapper.selectById(lendId);
        }
        return null;
    }

    /**
     * 根据参数查询数据sql
     * @param param 参数
     *        itemId 物品id
     *        itemName 物品名称
     *        stdmodeId  物品类型id
     *        personnelName 借出人名称
     *        borrowerName 借出人名称
     *        lendStatus 借用状态
     *        lendType 借用状态
     *        startTime 开始时间
     *        endTime  结束时间
     * @return 查询数据sql
     */
    @Override
    public List<Lend> findLendByParam(Map<String, Object> param) {
        if (StringUtils.isNotNull(param)){
            return lendMapper.findLendByParam(param);
        }
        return null;
    }

    /**
     * 添加借出记录信息
     *
     * @param lend 借出记录型信息
     * @return 影响行数
     */
    @Override
    public Integer addLend(Lend lend) {
        if (StringUtils.isNotNull(lend)){
            return lendMapper.insert(lend);
        }
        return null;
    }

    /**
     * 修改借出记录信息
     *
     * @param lend 借出记录
     * @return 影响条数
     */
    @Override
    public Integer updateLend(Lend lend) {
        if (StringUtils.isNotNull(lend)){
            return lendMapper.updateById(lend);
        }
        return null;
    }

    /**
     * 根据借出记录id修改借出记录状态
     * @param lendId 借出记录id
     * @param status 借出记录状态
     * @return 是否成功
     */
    @Override
    public Integer exitStatus(Integer lendId, String status) {
        if (StringUtils.isNotNull(lendId) && StringUtils.isNotEmpty(status)){
            return lendMapper.exitStatus(lendId,status);
        }
        return null;
    }
}
